Conventionally, there has been known a method of providing a stereoscopic view by using images having a predetermined parallax. Such a method of stereoscopic view is getting applied to a variety of fields. For example, applications for displaying a 3-dimensional virtual space, such as games or CG animations, have been developed.
In such a conventional application as described above, an object present at a predetermined position in a virtual space is drawn so as to appear to be on a display surface. In addition, an object present at a position closer to a virtual camera than the predetermined position is drawn so as to appear to protrude forward from the display surface, and an object present at a position farther from a virtual camera than the predetermined position is drawn so as to appear to be retracted backward from the display surface.
An object of the exemplary embodiments described herein is to provide a computer-readable storage medium having stored therein stereoscopic display control program, a stereoscopic display control system, a stereoscopic display control apparatus, and a stereoscopic display control method that are capable of generating a stereoscopic image easily viewable.
The first aspect of the exemplary embodiments is to provide a computer-readable storage medium having stored therein a program that causes a computer to function as display controller configured to, based on a predetermined viewpoint, generate an image for a right eye and an image for a left eye with respect to a predetermined virtual space in which a predetermined virtual object (e.g., a player object, a non-player object, a construction object, or a geography object) is present, and output the image for a right eye and the image for a left eye to a predetermined display in a stereoscopically visible manner. The display controller generates an image for a right eye and an image for a left eye of a proximity object which is a virtual object present at less than a predetermined distance from a viewpoint for drawing the virtual space, such that the proximity object is displayed in a simplified manner. The simplified display manner is, for example, to display an object as a silhouette image as described later. Besides this, any display manner may be employed as long as an object is displayed in a simpler manner than a “display manner for an object present at more than the predetermined distance from the viewpoint” (standard display manner). For example, in the simplified display manner, an object may be displayed as an image with decreased colors, a line image, an image with a decreased resolution, or a silhouette image (an image with a single color) as described later. The color strength of the silhouette image may be uniform. Image data for the simplified display manner may be generated from image data for the standard display manner, or may be stored in advance as separate image data. The simplified display manner may use simplified textures or simplified models. For example, as described later, the proximity object may be rendered with a texture for the silhouette display manner, instead of using a texture for the standard display manner. The predetermined distance may be a distance that allows an object to appear to protrude from the display surface, or may be a distance that allows an object to appear to be on the display surface (a distance that allows the display positions of an image for a right eye and an image for a left eye on the display to coincide with each other). Alternatively, considering a margin, the predetermined distance may be a distance that allows an object to appear to be retracted backward from the display surface. Typically, the display controller places two virtual cameras in the virtual space, and shoots the virtual space with the two virtual cameras, thereby generating an image for a right eye and an image for a left eye. Typically, the two virtual camera are set in the same shooting direction. Alternatively, the two virtual cameras may be set in cross directions.
A virtual object present at less than the predetermined distance from the viewpoint for drawing the virtual space is referred to as a proximity object. A virtual object present at more than the predetermined distance from the viewpoint for drawing the virtual space is referred to as a non-proximity object.
It is noted that not all virtual objects present at less than the predetermined distance from the viewpoint for drawing the virtual space need to be displayed in a simplified manner.
Stereoscopic images that appear to protrude toward a user can be difficult to view. However, according to the first aspect of the exemplary embodiments, an image for a right eye and an image for a left eye of a virtual object present at a position that allows the virtual object to appear to protrude are simplified, whereby the difference between the image for a right eye and the image for a left eye is decreased. Thus, it is possible to generate images easily viewable.
In addition, the display controller may decrease the difference between the display positions on the display of the image for a right eye and the image for a left eye of the proximity object, as well as displaying the proximity object in a simplified manner as described above. It is noted that the difference between the display positions may be decreased to zero. Processing for decreasing the difference between the display positions on the display of an image for a right eye and an image for a left eye may be performed (1) in processing of generating images of a proximity object, (2) in processing of superimposing images of a proximity object onto images of a non-proximity object, or (3) in processing of outputting images of a proximity object to the display. In the case (1), typically, the setting of the virtual cameras is changed from the setting for proximity object to the setting for non-proximity object, as described above. In the case (2), in the processing of superimposing images of a proximity object onto images of a non-proximity object, the difference between the display positions of the images of the proximity object is decreased, and then the images of the proximity object are superimposed onto the images of the non-proximity object. In the case (3), when images of a proximity object and images of a non-proximity object are outputted to the display, the difference between the display positions of the images of the proximity object is set to be smaller than the difference between the display positions of the images of the non-proximity object.
If a proximity object is displayed in a simplified manner and so as to decrease the difference between the display positions on the display of an image for a right eye and an image for a left eye of the proximity object, it becomes possible to generate images easily viewable. In addition, since a proximity object is displayed as a simplified image as described above, the processing of decreasing the difference between the display positions is relatively inconspicuous, and thus unnaturalness due to the processing is reduced.
In addition, in order to reduce the difference between the display positions, the display controller may generate, by using two virtual cameras having a first interval therebetween, the image for a right eye and the image for a left eye of the non-proximity object, and generate, by using two virtual cameras having a second interval smaller than the first interval therebetween, the image for a right eye and the image for a left eye of the proximity object.
In this case, typically, the position of the representative point of the “two virtual cameras having the second interval therebetween” (for example, the middle point therebetween or the position of one of the two virtual cameras) is set to be the same as the representative point of the “two virtual cameras having the first interval therebetween”. In addition, typically, the shooting direction of the “two virtual cameras having the second interval therebetween” is set to be the same as the shooting direction of the “two virtual cameras having the first interval therebetween”. The parallax between an image for a right eye and an image for a left eye of a virtual object shot with the “two virtual cameras having the second interval therebetween” is smaller than the parallax between an image for a right eye and an image for a left eye of the virtual object shot with the “two virtual cameras having the first interval therebetween”, even if the virtual object is present at the same position. The positions of the virtual cameras for shooting a proximity object may be separated in the direction opposite to the shooting direction from the positions of the virtual cameras for shooting a non-proximity object. In the case where the shooting directions of the two virtual cameras cross, the angle between the shooting directions of the virtual cameras for shooting a proximity object may be set to be larger than the angle between the shooting directions of the virtual cameras for shooting a non-proximity object.
Alternatively, a non-proximity object may be drawn with two virtual cameras having a predetermined interval therebetween, thereby generating an image for a right eye and an image for a left eye of the non-proximity object. Then, a proximity object may be drawn with a single camera placed at the representative point of the two virtual cameras (for example, the middle point), and the resultant image may be superimposed onto each of the image for a right eye and an image for the left eye of the non-proximity object. In this way, the parallax of the proximity object on the display surface can be made zero.
When the predetermined virtual object (for example, a player object) is present at less than the predetermined distance from the predetermined viewpoint, the display controller may display the predetermined virtual object in the simplified manner, and even when a virtual object (for example, a non-player object, a construction object, or a geography object) other than the predetermined virtual object is present at less than the predetermined distance from the predetermined viewpoint, the display controller may not display the virtual object in the simplified manner.
In this way, virtual objects are not simplified more than necessary. Therefore, the situation around the viewpoint can be easily grasped.
When the predetermined virtual object is present at less than the predetermined distance from the predetermined viewpoint, the display controller may perform processing for decreasing the difference between the display positions of the predetermined virtual object, and even when a virtual object other than the predetermined virtual object is present at less than the predetermined distance from the predetermined viewpoint, the display controller may not perform processing for decreasing the difference between the display positions of the predetermined virtual object.
In this way, a virtual object other than the predetermined virtual object can be displayed so as to have a correct parallax even if the virtual object is present near the viewpoint. Therefore, the virtual space can be displayed in a relatively natural fashion.
When the predetermined virtual object is present at less than the predetermined distance from the predetermined viewpoint, the display controller may generate, by using two virtual cameras having the first interval therebetween, an image for a right eye and an image for a left eye of a “virtual object other than the predetermined virtual object”, and may superimpose respective images of the predetermined virtual object that are generated by two virtual cameras having the second distance therebetween, onto the image for a right eye and the image for a left eye, by using respective pieces of depth information about the image for a right eye and the image for a left eye, generated by the generation of the image for a right eye and the image for a left eye.
In this way, in the case where a “predetermined virtual object” and an “object other than the predetermined virtual object” are present near the viewpoint, it is possible to decrease the difference between the display positions of the “predetermined virtual object”, by using correct display priorities based on the depth positions.
The display controller may generate the image for a right eye and the image for a left eye of the proximity object as semi-transparent images.
In this way, it is possible to generate images easily viewable. Specifically, in the case where the difference between the display positions of a proximity object is decreased, it is possible to reduce unnaturalness due to the decreasing processing.
A player object that is operated by a player may be present in the predetermined virtual space. In this case, the display controller may set a viewpoint and a direction of line of vision, based on the position of the player object, thereby generating an image including the player object, and the “predetermined virtual object” may be the player object.
In this way, even if an object always displayed on the screen is temporarily displayed in a simplified manner as necessary, there is relatively no trouble. A player needs to grasp objects other than the above object are. Therefore, if the other objects are not displayed in a simplified manner even when they are near the viewpoint, the player can easily play a game.
The second aspect of the exemplary embodiments is to provide a display control system comprising display controller configured to, based on a predetermined viewpoint, generate an image for a right eye and an image for a left eye with respect to a predetermined virtual space in which a predetermined virtual object is present, and output the image for a right eye and the image for a left eye to a predetermined display in a stereoscopically visible manner. The display controller generates an image for a right eye and an image for a left eye of a proximity object which is a virtual object present at less than a predetermined distance from the predetermined viewpoint, such that the proximity object is displayed in a simplified manner.
The third aspect of the exemplary embodiments is to provide a display control apparatus comprising display controller configured to, based on a predetermined viewpoint, generate an image for a right eye and an image for a left eye with respect to a predetermined virtual space in which a predetermined virtual object is present, and output the image for a right eye and the image for a left eye to a predetermined display in a stereoscopically visible manner. The display controller generates an image for a right eye and an image for a left eye of a proximity object which is a virtual object present at less than a predetermined distance from the predetermined viewpoint, such that the proximity object is displayed in a simplified manner.
The fourth aspect of the exemplary embodiments is to provide a display control method for controlling a display control apparatus or a display control system. In the display control method, when an image for a right eye and an image for a left eye with respect to a predetermined virtual space in which a predetermined virtual object is present are generated based on a predetermined viewpoint, and the image for a right eye and the image for a left eye are outputted to a predetermined display in a stereoscopically visible manner, an image for a right eye and an image for a left eye of a proximity object which is a virtual object present at less than a predetermined distance from the predetermined viewpoint are generated such that the proximity object is displayed in a simplified manner.
According to the exemplary embodiments, it is possible to generate stereoscopic images easily viewable.
These and other objects, features, aspects and advantages of exemplary embodiments will become more apparent from the following detailed description of exemplary embodiments when taken in conjunction with the accompanying drawings.